Expand description

Sqlite3 provider for LStrings.

This crate implements LStringProvider using Sqlite3 as the data store for language strings. As a directory path is used at the time of creating a ProviderSqlite3 object, it means that an application can have multiple data stores for both application language strings, and also for data packages’ language strings.

Examples

use i18n_provider_sqlite3::ProviderSqlite3;
use i18n_provider::LStringProvider;
use i18n_utility::LanguageTagRegistry;
use std::rc::Rc;
use std::error::Error;
 
fn main() -> Result<(), Box<dyn Error>> {
    let path = "./i18n/";
    let registry = Rc::new( LanguageTagRegistry::new() );
    let tag = registry.get_language_tag( "en" )?;
    let provider = ProviderSqlite3::try_new(
        path,
        &registry
    )?;
    let strings = provider.get(
        "i18n_provider_sqlite3/invalid_path",
        &tag
    )?;
    assert_eq!( strings.len(), 1, "There should be 1 string." );
    assert_eq!( strings[ 0 ].as_str(), "Invalid path was provided.", "Not correct string." );
    assert_eq!( strings[ 0 ].language_tag().as_str(), "en-ZA", "Must be en-ZA." );
    Ok( () )
}

Re-exports

Modules